package com.zhxxfwzx.entity;

import java.time.LocalDateTime;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhxxfwzx.common.enums.SexEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * (SysUser)实体类
 *
 * @author liJing
 * @since 2021-06-17 19:47:42
 */
@TableName(value = "sys_user")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SysUser implements Serializable {
    private static final long serialVersionUID = 372457217118763278L;


    /**
     * 用户id
     */
    @TableId(value = "user_id", type = IdType.AUTO)
    private Long userId;
    /**
     * 用户名（用于登录）
     */
    private String username;
    /**
     * 密码（用于登录）
     */
    private String password;
    /**
     * 部门编号（对应部门表）
     */
    private Integer deptId;
    /**
     * 用户编码
     */
    private String userCode;
    /**
     * 用户姓名
     */
    private String userFullname;
    /**
     * 用户性别
     */
    private SexEnum userSex;
    /**
     * 名族
     */
    private String userNationality;
    /**
     * 籍贯
     */
    private String userOrigin;
    /**
     * 部职别
     */
    private String userTitle;
    /**
     * 军衔
     */
    private String militaryRank;
    /**
     * 技术等级
     */
    private Integer skillLevel;
    /**
     * 现技术等级时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime skillTime;
    /**
     * 出生年月
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime userBirth;
    /**
     * 入伍时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime militaryTime;
    /**
     * 家庭住址
     */
    private String userAddress;
    /**
     * 文化程度
     */
    private String educationLevel;
    /**
     * 本科毕业院校
     */
    private String graduateSchool;
    /**
     * 研究生毕业院校
     */
    private String postgraduateSchool;
    /**
     * 党团时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime partyTime;
    /**
     * 婚姻情况
     */
    private String maritalStatus;
    /**
     * 专业
     */
    private String userMajor;
    /**
     * 电话号码
     */
    private String telephoneNumber;
    /**
     * 创建人id
     */
    private Integer createBy;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     * 修改人id
     */
    private Integer updateBy;
    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
     * 创建ip
     */
    private String createIp;
    /**
     * 修改ip
     */
    private String updateIp;
    /**
     * 删除标识
     */
    @TableLogic
    private Integer deleted;
    /**
     * 版本号
     */
    @Version
    private Integer version;
}
